package edu.neu.swc.cloud.dao;

import edu.neu.swc.cloud.domain.Factory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;


@Mapper
public interface FactoryDao {
    List<Factory> findAll();
    void shutDownById(int fac_id);
    void startUpById(int fac_id);
    List<Factory> findFacByCon(Factory factory);

    /**
     * 依据ID寻找工厂信息
     * @param bid_fac_id
     * @return
     */
    Factory findFacById(int bid_fac_id);

    /**
     * 依据负责人找到工厂信息
     * @param ad_id
     * @return
     */
    Factory findFactoryBySpon(int ad_id);

    /**
     * 依据工厂名称查找工厂信息
     * @param fa_name
     * @return
     */
    Factory findFactoryByName(String fa_name);

    /**
     * 添加工厂信息
     * @param factory
     */
    void addFactory(Factory factory);

    /**
     * 添加用户和工厂的联系集合
     * @param ad_id
     * @param fa_id
     */
    void addFacRel(@Param("ad_id") int ad_id,
                   @Param("fa_id") int fa_id);

    /**
     * 获得工厂数目
     * @param fa_name
     * @return
     */
    int getFactoryCounts(@Param("fa_name") String fa_name);

    /**
     * 依据条件分页获取工厂信息
     * @param fa_name
     * @param pageStart
     * @param pageSize
     * @return
     */
    List<Factory> findFactoryByQuery(@Param("fa_name") String fa_name,
                                     @Param("pageStart") int pageStart,
                                     @Param("pageSize") int pageSize);
}
